package com.chenyue.cm.live.im.service;

import com.chenyue.cm.bean.Success;
import com.chenyue.cm.live.im.vo.LiveCron;
import com.chenyue.cm.user.domain.JdAppUser;

import java.io.IOException;

/**
 * @author libingxing
 */
public interface ImService {

    /**
     * 账号导入IM
     *
     * @param user 用户信息
     * @return 结果
     * @throws IOException post
     */
    boolean accountImport(JdAppUser user) throws IOException;

    /**
     * 查询用户详情
     *
     * @param user 用户id
     * @return Success
     * @throws IOException post
     */
    Success<String> viewAccount(JdAppUser user) throws IOException;

    /**
     * 拼接url
     *
     * @param service 服务
     * @param method  方法
     * @return String
     */
    String getUrl(String service, String method);

    /**
     * 删除IM用户
     *
     * @param user 用户
     * @throws IOException post
     */
    void deleteAccount(JdAppUser user) throws IOException;

    /**
     * 创建聊天室
     *
     * @param id   用户ID
     * @param name 聊天室名称
     * @param zbId 主播id
     * @return 聊天室房间号
     * @throws IOException post
     */
    String createGroup(Integer id, String name, String zbId) throws IOException;

    /**
     * 解散聊天室
     *
     * @param groupId 聊天室id
     */
    void deleteGroup(String groupId) throws IOException;

    /**
     * 修改IM用户
     *
     * @param user 用户信息
     * @throws IOException post
     */
    void setProfile(JdAppUser user) throws IOException;

    /**
     * 发送消息
     *
     * @param userId  用户id
     * @param msgType 1文字2图片
     * @param cron    消息内容
     * @throws IOException post
     */
    void sendMsg(int userId, int msgType, LiveCron cron) throws IOException;

    /**
     * 获取当前群组的在线人数
     *
     * @param groupId 群组id
     * @return String
     * @throws IOException 传输异常
     */
    String getCurrentGroupMemberNumber(String groupId) throws IOException;

    /**
     * 查看该用户是否被禁言
     *
     * @param userId   用户id
     * @param recordId 群组id
     * @return 是否关播
     */
    boolean isBanSendMsg(Integer userId, Integer recordId);

}
